#include <iostream>
#include <memory>
#include <vector>

#include "private_template.h"
#include <logger.h>

int main()
{
    PropertyDemo<int> demo;
    demo.Set(3);
    std::cout << demo.Get() << std::endl; // 3

    Print(4); // 4
    NormalDemo::PrintHash(std::string("5")); // 7995238595416485409
    NormalDemo demo2;
    demo2.PrintDefaultHash<int>(); // 0
    demo2.PrintDefaultHash<std::string>(); // 6142509188972423790

    Print(demo2.GetDefault<int>()); // 0
    Print(demo2.GetDefault<bool>()); // false
    return 0;
}
